package com.lenovo.spider.component.scheudler;

import java.util.function.Supplier;

/**
 * @author <a href="mailto:liuhan3@lenovo.com">HanL(liuhan3)</a>
 * on 2018/4/13 10:28
 */
public class QueueConfig {

    public static final String QUEUE_KEY_PREFIX = "queue_";
    public static final String ITEM_KEY_PREFIX = "item_";

    public final Supplier<String> queueChooser;

    public QueueConfig(Supplier<String> queueChooser) {
        this.queueChooser = queueChooser;
    }

    /**
     * 根据给定的队列名称， 获取完整的队列键名
     *
     * @param queueName 给定一个队列名
     * @return
     */
    public String getQueueKey(String queueName) {
        return QUEUE_KEY_PREFIX.concat(queueName);
    }

    /**
     * 根据给定的队列名称，获取完整的HashTable键名
     *
     * @param queueName 给定一个队列名
     * @return
     */
    public String getItemKey(String queueName) {
        return ITEM_KEY_PREFIX.concat(queueName);
    }

    /**
     * 获取任意的一个队列键名
     * 说明： 多个site时，每个site对应一个queue，使用该方法可获得一个随机的site对应的队列名称
     *
     * @return
     */
    public String getAnyQueueChannel() {
        return queueChooser.get();
    }


}
